package com.ruibang.glass.material.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruibang.glass.material.domain.req.*;
import com.ruibang.glass.material.domain.resp.GlassBindResp;
import com.ruibang.glass.material.domain.resp.QualityManageDetailResp;
import com.ruibang.glass.material.domain.resp.external.ContentTypeStartTime;
import com.ruibang.glass.material.entity.MaterialContentLot;
import com.teaming.cloud.framework2.common.pojo.PageRequest;
import com.teaming.cloud.framework2.common.pojo.PageResult;

import java.util.List;

/**
 * <p>
 * A型架和水平托盘容器绑定的批次号信息 服务类
 * </p>
 *
 * @author wujie
 * @since 2024-02-05
 */
public interface MaterialContentLotService extends IService<MaterialContentLot> {

    MaterialContentLot getLotByParams(MaterialContentLotReq reqVo);

    MaterialContentLot getLotByContentCode(String contentCode);

    List<ContentTypeStartTime> getLotTypeStartTime();

    /**
     * 冷端批次同步
     * @param startTime
     */
    void syncColdSideLotData(String startTime);

    /**
     * 热端批次同步
     * @param startTime
     */
    void syncHotSideLotData(String startTime);

    /***
     * 分页列表查询A型架和水平托盘容器绑定的批次号信息
     * @param pageRequest
     * @return
     */
    PageResult<MaterialContentLot> queryPage(PageRequest<MaterialContentLotReq> pageRequest);


    /***
     * PDA查询批次信息
     * @param pageRequest
     * @return
     */
    PageResult<QualityManageDetailResp> queryAppPage(PageRequest<MaterialContentLotReq> pageRequest);

    QualityManageDetailResp getContentDetail(String batchNumber);

    List<GlassBindResp> getGlassBindData(GlassBindReq glassBindReq);

    void unbind(UnbindReq unbindReq);

    void applyCheck(QualityCheckReq checkReq);

    void checkQuality(QualityCheckReq checkReq);

    void changeQuality(QualityChangeReq changeReq);

    void applyWarehouse(String lotId);

}
